package top.loonglove.newindexserver.dao.common;

import org.apache.ibatis.annotations.Mapper;
import top.loonglove.common.base.dao.BaseDao;
import top.loonglove.common.base.result.PageResult;
import top.loonglove.newindexserver.bo.common.query.AccountPageQuery;
import top.loonglove.newindexserver.bo.common.query.AccountQuery;
import top.loonglove.newindexserver.entity.Account;

/**
 * @author : xgl
 * @version : 0.0.1
 * @date :2021/7/30 0:47
 */
@Mapper
public interface AccountDao extends BaseDao<Account,AccountQuery,AccountPageQuery> {
    /**
     * 分页获取数据
     *
     * @param q 查询条件
     * @return 分页查询结果
     */
    @Override
    PageResult<Account> getPage(AccountPageQuery q);

    /**
     * 添加数据
     *
     * @param account 数据
     */
    @Override
    void add(Account account);

    /**
     * 删除数据，假删除
     *
     * @param account 数据
     */
    @Override
    void remove(Account account);

    /**
     * 获取数据
     *
     * @param q 查询项
     * @return 数据
     */
    @Override
    Account get(AccountQuery q);

    /**
     * 修改数据
     *
     * @param account 新数据
     */
    @Override
    void modify(Account account);

    /**
     * 删除数据，真删除
     *
     * @param account 删除数据
     */
    @Override
    void delete(Account account);

    Account loadUserByUsername(String username);
}
